/* 
	该文件是对axios进行二次封装，封装的目的有：
		1.给所有ajax请求都加上进度条效果
		2.所有axios发出去的请求都能返回真正的数据，即：不用在response.data了
		3.所有的请求，统一路径，不用再一遍一遍的编写固定的路径了
		.....以后还会实现别的，但目前就这么多
*/
import axios from 'axios'
// import 'nprogress/nprogress.css'
// import NProgress from 'nprogress'
// import store from '@/store'


//创建一个新的axios实例（以后用ajax专门用于给http://39.98.123.211/发请求）
const ajax = axios.create({
	baseURL:'/api', //请求基本路径
	// timeout:5000, //超时时间
})

//axios的请求拦截器
ajax.interceptors.request.use((config)=>{
	//进度条开始走
	// NProgress.start() 
	// //从vuex中获取：userTempId、userToken
	// const {userTempId,userToken} = store.state.user
	// //携带用户临时标识（临时标识一定是存在的，所以直接带就行，不用判断）
	// config.headers.userTempId = userTempId
	// //判断下一下token是都存在
	// if(userToken){
	// 	config.headers.token = userToken
	// }
	//将请求配置对象交出去
	return config
})

//axios的响应拦截器
ajax.interceptors.response.use(
	(response)=>{
		//进度条停下来
		// NProgress.done() 
		//返回真正的数据
		return response.data 
	},
	(error)=>{
		//统一提示错误
		alert(error) 
		//进度条停下来
		// NProgress.done() 
		// return Promise.reject(error) //可以返回具体错误信息
		return new Promise(()=>{}) //也可以中断Promise链，让一切停下来
	}
)

export default ajax


